Electronic messaging platform that allows users to change the content and attachments of messages after sending

ABSTRACT

Systems, methods, and computer media for manipulating electronic messages are provided herein. A system for editing electronic messages can include at least one processor, and an application. The application can be configured to, by the at least one processor, send an electronic message from a sender to a recipient, edit the message after it has been sent to the recipient to create an edited message, retain a relative location of the message in the recipient&#39;s inbox while the edited message is created, send the edited message from the sender to the recipient, and place the edited message in the relative location of the message in the recipient&#39;s inbox.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. application Ser. No.15/232,567, filed Aug. 9, 2016, which is incorporated by referenceherein.

FIELD

This disclosure is directed to electronic messaging, as well as relateddevices, systems, and methods.

BACKGROUND

Electronic messaging such as email, instant messages, text messages,etc. have become commonplace. Electronic messaging is used, for example,for communicating personal and/or business information. Despite itsadvantages, electronic messaging has shortcomings which can adverselyaffect communication and relationships.

SUMMARY

Examples described herein relate to managing and/or editing sentelectronic messages, as well as related devices, systems, and methods.

In one example, a system for editing an electronic message comprises atleast one processor, and an application configured to, by the at leastone processor, send an electronic message from a sender to a recipient,edit the message after it has been sent to the recipient to create anedited message, retain a relative location of the message in therecipient's inbox while the edited message is created, send the editedmessage from the sender to the recipient, and place the edited messagein the relative location of the message in the recipient's inbox.

In some examples, the application is further configured to edit themessage by adding at least one attachment to or by removing at least oneattachment from the message. In some examples, the application isfurther configured to edit the message by adding at least one additionalrecipient to the message. In some examples, the application is furtherconfigured to edit the message by editing a subject line of the message.

In some examples, the application is further configured to displayinformation about the recipient while the sender is composing, editing,or replying to the message. In some of those examples, the informationabout the recipient comprises personal information about the recipient.In other such examples, the information about the recipient comprisesnotes about the recipient that were previously entered by the sender. Inother such examples, the information about the recipient comprisesinformation about past or upcoming meetings between the sender and therecipient.

In some examples, the application is a messaging application on asmartphone. In some examples, the application is a messaging applicationon a computer.

In another example, a method of editing an electronic message isprovided. The method comprises sending an electronic message from afirst device of a first user to a second user, editing the message froma second device of the first user, and sending the edited message fromthe second device of the first user to the second user.

In some examples, editing the message includes adding at least oneattachment to or removing at least one attachment from the message. Inother examples, editing the message includes adding at least oneadditional recipient to the message.

In some examples, the first device is a computer, and the second deviceis a smartphone. In other examples, the first device is a smartphone,and the second device is a computer. In some examples, the message is anemail message.

In another example, one or more computer-readable storage media storingcomputer-executable instructions for editing an electronic message isprovided. The computer-readable storage comprises instructions forsending a message from a sender to a recipient, instructions for editingthe message after the message has been sent to create an edited message,instructions for retaining a relative location of the message in therecipient's inbox while the edited message is created, instructions forsending the edited message from the sender to the recipient, andinstructions for placing the edited message in the relative location ofthe message in the recipient's inbox.

In some examples, the instructions for editing the message includeinstructions for adding at least one attachment to or removing at leastone attachment from the message. In some examples, the instructions forediting the message include instructions for adding at least onerecipient to the message. In some examples, the instructions for editingthe message include instructions for editing a subject line of themessage.

The foregoing and other objects, features, and advantages of theinvention will become more apparent from the following detaileddescription, which proceeds with reference to the accompanying figures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flowchart illustrating an example method of manipulatingelectronic messages.

FIG. 2 is a flowchart illustrating an example method of manipulatingelectronic messages.

FIGS. 3A-3F are examples of a user interface demonstrating variousfeatures of a system capable of manipulating electronic messages.

FIG. 4 is a block diagram of an example system capable of manipulatingelectronic messages.

FIG. 5 is an example of a user interface demonstrating various featuresof a system capable of displaying information about a recipient while auser is composing an electronic message.

FIG. 6 is an example of a user interface demonstrating various featuresof a system capable of displaying information about events related to arecipient while a user is composing an electronic message.

FIG. 7 is a diagram of an example computing system in which somedescribed embodiments can be implemented.

FIG. 8 is an example mobile device that can be used in conjunction withthe technologies described herein.

FIG. 9 is an example cloud-supported environment that can be used inconjunction with the technologies described herein.

DETAILED DESCRIPTION

General Considerations

This disclosure is set forth in the context of representativeembodiments that are not intended to be limiting in any way.

As used in this application and in the claims, the singular forms “a,”“an,” and “the” include the plural forms unless the context clearlydictates otherwise. Additionally, the term “includes” means “comprises.”

The systems, methods, and apparatus disclosed herein should not beconstrued as being limiting in any way. Instead, this disclosure isdirected toward all novel and non-obvious features and aspects of thevarious disclosed embodiments, alone and in various combinations andsub-combinations with one another. The disclosed systems, methods, andapparatus are not limited to any specific aspect or feature orcombinations thereof, nor do the disclosed systems, methods, andapparatus require that any one or more specific advantages be present orproblems be solved. Furthermore, any features or aspects of thedisclosed embodiments can be used in various combinations andsub-combinations with one another. Furthermore, as used herein, the term“and/or” means any one item or combination of items in the phrase.

Although the operations of some of the disclosed methods are describedin a particular, sequential order for convenient presentation, it shouldbe understood that this manner of description encompasses rearrangement,unless a particular ordering is required by specific language set forthbelow. For example, operations described sequentially may in some casesbe rearranged, omitted, or performed concurrently. Moreover, for thesake of simplicity, the attached figures may not show the various waysin which the disclosed systems, methods, and apparatus can be used inconjunction with other systems, methods, and apparatus. Additionally,the description sometimes uses terms like “receive,” “produce,”“identify,” “transform,” “modulate,” “calculate,” “predict,” “evaluate,”“validate,” “apply,” “determine,” “generate,” “associate,” “select,”“search,” and “provide” to describe the disclosed methods. These termsare high-level abstractions of the actual operations that are performed.The actual operations that correspond to these terms can vary dependingon the particular implementation and are readily discernible by one ofordinary skill in the art.

Some of the disclosed methods can be implemented withcomputer-executable instructions stored on one or more computer-readablestorage media (e.g., non-transitory computer-readable media, such as oneor more volatile memory components (such as DRAM or SRAM), ornonvolatile memory components (such as hard drives) and executed on acomputer. Any of the computer-executable instructions for implementingthe disclosed techniques as well as any data created and used duringimplementation of the disclosed embodiments can be stored on one or morecomputer-readable media (e.g., non-transitory computer-readable media).The computer-executable instructions can be part of, for example, adedicated software application or a software application that isaccessed or downloaded via a web browser or other software application(such as a remote computing application). Such software can be executed,for example, on a single local computer (e.g., any suitablecommercially-available computer) or in a network environment (e.g., viathe Internet, a wide-area network, a local-area network, a client-servernetwork (such as a cloud computing network), or other such network)using one or more network computers.

For clarity, only certain selected aspects of the software-basedimplementations are described. Other details that are well-known in theart are omitted. For example, it should be understood that the disclosedtechnology is not limited to any specific computer language or program.Likewise, the disclosed technology is not limited to any particularcomputer or type of hardware. Certain details of suitable computers andhardware are well-known and need not be set forth in detail in thisdisclosure.

Theories of operation, scientific principles, or other theoreticaldescriptions presented herein in reference to the systems, methods, andapparatus of this disclosure have been provided for the purposes ofbetter understanding and are not intended to be limiting in scope. Thesystems, methods, and apparatus in the appended claims are not limitedto those systems, methods, and apparatus that function in the mannerdescribed by such theories of operation.

EXAMPLES

Using the systems, methods, and computer-readable media describedherein, a user can manipulate (e.g., edit and/or delete) an electronicmessage sent by the user to a recipient. The user can also determinewhether an electronic message has been read by the recipient.Additionally, the user can view information about the recipient (e.g.,position, relationship, past and/or upcoming meetings, etc.) while theuser is composing the electronic message. These features, as well asothers described herein, advantageously allow a user to more accurately,effectively, and efficiently communicate. The features can also reducemistakes and/or save time, which in turn can reduce stress. Thus, thesystems, methods, and computer-readable media described herein and makeelectronic messaging more enjoyable, efficient, and effective.

Electronic messages or messages referred to herein can comprise variousformats and/or platforms including email, instant messages (“IM”), textmessages (e.g., SMS), and the like. Although examples described hereinmay refer to a particular platform (e.g., email), the features of theexamples can be adapted to one or more other platforms (e.g., IM, textmessages, etc.).

Examples are described below with reference to FIGS. 1-9.

FIG. 1 illustrates a method 100 for manipulating electronic messages. Auser can create a message to a recipient by composing a message and/orreplying to a message to the user from the recipient. In process block102, the message is delivered from the user to the recipient's “Inbox.”In process block 104, the message is displayed, for example, in theuser's “Sent” folder. Although not shown in FIG. 1, in other examples,the message can be displayed, for example, in the user's “Sent” folderif the recipient has read the message and/or in the user's “Unread Sent”folder if the recipient has not read the message.

The user can select a sent (read and/or unread) message to edit, forexample, by clicking or tapping on the message. In process block 106,the user input can be received. In process block 108, the intent of theuser can be determined. For example, it can be determined that the userwants to delete the message. This can be determined, for example, whenthe user clicks or taps a “Delete” or “Move to trash” icon or button.Upon determining the user's intent to delete the message, the messagecan be deleted (e.g., removed from the recipient's inbox or otherlocation as though it were never sent), as illustrated in process block110.

Alternatively, it can be determined that the user wants to edit themessage. This can be determined, for example, when the user clicks ortaps an “Edit” or “Revise” icon or button or when the user clicks ortaps on the directly on the message such as on the “To” line, the“Subject” line, and/or in the “Body” of the message. Upon determiningthe user's intent to edit the message, the message can be edited, asillustrated in process block 112.

Once the message is edited, the user's intent can be determined, asillustrated in process block 114. Upon determining that the user'sintent is to send the revised or edited message, the message isdelivered to the recipient, as illustrated in process block 116. Theuser can repeat the process until satisfied with the message.

In some examples, the recipient is not notified of a change to themessage. As such, the user can correct mistakes, delete inadvertentmessages, etc. without alerting the recipient that such changes haveoccurred.

In some examples (e.g., FIG. 1), the user can edit messages that havebeen read by the recipient (e.g., messages in a “Sent” folder) and/ormessages that have not been read by the recipient (e.g., messages in an“Unread Sent” folder). In other examples (e.g., FIG. 2), a user can onlyedit messages that has not been read by a recipient (e.g., messages inthe “Unread Sent” folder).

FIG. 2 illustrates a method 200 for manipulating unread electronicmessages. In process block 202, a message is delivered from a user to arecipient's inbox. In process block 204, a determination of whether therecipient has read the message is made. If the message has been read bythe recipient, the message is displayed in the user's “Sent” folder, asillustrated in process block 206. If the message has not been read bythe recipient, the message is displayed in the user's “Unread Sent”folder, as illustrated by process block 208.

The user can select an unread sent message to edit, for example, byclicking or tapping on the message. In process block 210, the user inputcan be received. In process block 212, the intent of the user can bedetermined. For example, it can be determined that the user wants todelete the message. This can be determined, for example, when the userclicks or taps a “Delete” or “Move to trash” icon or button. Upondetermining the user's intent to delete the message, the message can bedeleted (e.g., removed from the recipient's inbox or other location asthough it were never sent), as illustrated in process block 214.

Alternatively, it can be determined that the user wants to edit themessage. This can be determined, for example, when the user clicks ortaps an “Edit” or “Revise” icon or button or when the user clicks ortaps on the directly on the message such as on the “To” line, the“Subject” line, and/or in the “Body” of the message. Upon determiningthe user's intent to edit the message, the message can be edited, asillustrated in process block 214.

Once the message is edited, the user's intent can be determined, asillustrated in process block 218. Upon determining that the user'sintent is to send the revised or edited message, the message isdelivered to the recipient, as illustrated in process block 220.

A message can be manipulated in various ways. For example, a user candelete the message, add recipients (e.g., To, Cc; Bcc; etc.), edit(e.g., delete, change, and/or add) text in the body of the message,and/or add and/or removed attachments.

In some examples (e.g., methods 100, 200), the user's sent folder canshow each message that is sent (e.g., each revised message or iteration)even though the recipient's inbox only shows the most recent message.For example, if the user sends a message to a recipient and then editsthe message and resends it three additional times, the user's sentfolder can display 4 messages (i.e., the original message and threeedited messages) and the recipient's inbox will only show one message(i.e., the most recent version of the message). In other examples, theuser's sent folder and the recipient's inbox can only display the mostrecent version of the message.

For example, FIGS. 3A-3C illustrate an example user interface 300.Referring to FIG. 3A, the user interface 300 can comprise an “UnreadSent” folder or list 302 and a message display 304. As shown in thefolder 302 and the message display 304, User 1 sent a first message 306to User 2 at 1:01 PM (i.e., displayed as 13:01 in the message display304). The first message 306 from User 1 to User 2 contains a “typo”(i.e., “documents” is incorrectly spelled “documentss”). The firstmessage 306 also refers to an attachment, but the first message 306 doesnot include an attachment. Typical messaging platforms would requireUser 1 to send another message (or two) to User 2 in order to correctthe typo and/or include the referenced attachment.

The messaging platform described herein, however, advantageously allowsUser 1 to edit the first message 306 to User 2 without an additionalmessage appearing in User 2's inbox. This can be accomplished, forexample, by clicking on the first message 306, which allows User 1 toedit the first message 306. User 1 can then fix the typo and include thereferenced attachment. User 1 can then send a revised, second message308 to User 2, as shown in FIG. 3B.

FIG. 3B shows that in the second message 308 the typo has been correctedand a first attachment (illustrated as “Attachment_1.pdf” in FIG. 3B)has been included. FIG. 3B also shows that the folder 302 only has onemessage from User 1 to User 2. The second message 308 shows that themessage was at 1:01 PM even though it was revised and sent at 1:04 PM asshown by timestamp 310. As a result, when User 2 reads the secondmessage 308 there is no indication that User 1 sent the first message306.

FIG. 3C shows a third message 312 which is a revised version of thesecond message 308. Compared to the second message 308, the thirdmessage 312 has been edited to change “document” to “documents” in thebody of the third message 312 and to include a second attachment (e.g.,illustrated as “Attachment_1.docx” in FIG. 3C). The third message 312shows that the message was at 1:01 PM even though it was revised andsent at 1:07 PM as shown by timestamp 314.

FIG. 3D shows a fourth message 316 which is separate from and subsequentto the messages 306, 308, 312. For example, the message display 304 andthe timestamp 318 illustrate that the fourth message 316 was sent at1:12 PM.

FIGS. 3E-3F illustrates a fifth message 320 which is a revised versionof the third message 312. Compared to the third message 312, the fifthmessage 320 changes the Subject from “Email 1” to “Email 3” and addsUser 3 as a “To” recipient and User 4 (FIG. 3F) as a “Cc” recipient. Thefifth message 320 was sent at 1:15 PM as illustrated by timestamp 322,but the message 320 still indicates that the message was sent at 1:01 PM(i.e., the time that the first message 306 was sent). As also shown inFIGS. 3E-3F, the fifth message 320 retains the position of the thirdmessage 312 relative to the other messages (e.g., the fourth message316) in the folder 302.

FIG. 4 illustrates a system 400 configured for composing and/or sendingmessages as illustrated by process block 402 and for editingand/deleting messages as illustrated by process block 404. The system400 can be configured to interact with a plurality of devices (e.g.,computers, smartphones, tablets, etc.) and can be configured such that auser can compose and/or send a message from one device (e.g., acomputer) and edit and/or delete the message from another device. Forexample as shown in FIG. 4, User 1 can use a computer 408 and/or asmartphone 410 to compose and/or send a message to User 2 who can viewand/or reply to the message (illustrated in process block 406) on acomputer 412. User 1 can also use the computer 408 and/or the smartphone410 to edit and/or delete the message to User 2. As such, the system 400provides significant advantages over typical systems which only allowusers to edit a message on the device from which the message was sent.

FIG. 5 illustrates a user interface 500. The user interface 500 cancomprise a message display 502 and an information display 504. Theinformation display 504 can be displayed when a user is composing,editing, and/or replying to a message. A user can access the informationdisplay, for example, by clicking or touching a “Notes” icon or buttonin the message display 502. The information display 504 can includeinformation and/or notes about a recipient of the message. For example,the notes can include birthday, family information (e.g., names ofpartner and/or children), anniversary, things to notice, topics toavoid, follow-up topics, topics to always mention, as well as a generalnotes section.

FIG. 6 illustrates a user interface 600. The user interface 600 cancomprise a message display 602 and an information display 604. Theinformation display 604 can be displayed when a user is composing,editing, and/or replying to a message. A user can access the informationdisplay 604, for example, by clicking or touching an “Agenda” icon orbutton in the message display 602. The information display 604 caninclude information about previous and/or upcoming events or meetingsrelated to a recipient of the message. For example, the user can enterdetails about upcoming meetings, and the details can be displayed in theinformation display 604. In particular examples, the information display604 can also include other meeting information such as title, start andend date, start and finish time, reoccurrence (e.g., daily, weekly,monthly, yearly), location (which, in some examples, can be integratedwith mapping software and/or a mapping service, priority (e.g., veryhigh, high, medium, low), alerts (e.g., at time of the event, 5 minutesbefore, 30 minutes before, a hour before, a day before, a week before,etc.), description of the meeting, and/or the contacts involved.

Computing Systems

FIG. 7 depicts a generalized example of a suitable computing system 700in which the described innovations may be implemented. The computingsystem 700 is not intended to suggest any limitation as to scope of useor functionality, as the innovations may be implemented in diversegeneral-purpose or special-purpose computing systems. For example, thecomputing devices 308, 312 can be configured similar to the computingsystem 700.

With reference to FIG. 7, the computing system 700 includes one or moreprocessing units 710, 715 and memory 720, 725. In FIG. 7, this basicconfiguration 730 is included within a dashed line. The processing units710, 715 execute computer-executable instructions. A processing unit canbe a general-purpose central processing unit (CPU), processor in anapplication-specific integrated circuit (ASIC), or any other type ofprocessor. In a multi-processing system, multiple processing unitsexecute computer-executable instructions to increase processing power.For example, FIG. 7 shows a central processing unit 710 as well as agraphics processing unit or co-processing unit 715. The tangible memory720, 725 may be volatile memory (e.g., registers, cache, RAM),non-volatile memory (e.g., ROM, EEPROM, flash memory, etc.), or somecombination of the two, accessible by the processing unit(s). The memory720, 725 stores software 780 implementing one or more innovationsdescribed herein, in the form of computer-executable instructionssuitable for execution by the processing unit(s).

A computing system may have additional features. For example, thecomputing system 700 includes storage 740, one or more input devices750, one or more output devices 760, and one or more communicationconnections 770. An interconnection mechanism (not shown) such as a bus,controller, or network interconnects the components of the computingsystem 700. Typically, operating system software (not shown) provides anoperating environment for other software executing in the computingsystem 700, and coordinates activities of the components of thecomputing system 700.

The tangible storage 740 may be removable or non-removable, and includesmagnetic disks, magnetic tapes or cassettes, CD-ROMs, DVDs, or any othermedium which can be used to store information and which can be accessedwithin the computing system 700. The storage 740 stores instructions forthe software 780 implementing one or more innovations described herein.

The input device(s) 750 may be a touch input device such as a keyboard,mouse, pen, or trackball, a voice input device, a scanning device, oranother device that provides input to the computing system 700. Forvideo encoding, the input device(s) 750 may be a camera, video card, TVtuner card, or similar device that accepts video input in analog ordigital form, or a CD-ROM or CD-RW that reads video samples into thecomputing system 700. The output device(s) 760 may be a display,printer, speaker, CD-writer, or another device that provides output fromthe computing system 700.

The communication connection(s) 770 enable communication over acommunication medium to another computing entity. The communicationmedium conveys information such as computer-executable instructions,audio or video input or output, or other data in a modulated datasignal. A modulated data signal is a signal that has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. By way of example, and not limitation, communicationmedia can use an electrical, optical, RF, or other carrier.

The innovations can be described in the general context ofcomputer-executable instructions, such as those included in programmodules, being executed in a computing system on a target real orvirtual processor. Generally, program modules include routines,programs, libraries, objects, classes, components, data structures, etc.that perform particular tasks or implement particular abstract datatypes. The functionality of the program modules may be combined or splitbetween program modules as desired in various embodiments.Computer-executable instructions for program modules may be executedwithin a local or distributed computing system.

The terms “system” and “device” are used interchangeably herein. Unlessthe context clearly indicates otherwise, neither term implies anylimitation on a type of computing system or computing device. Ingeneral, a computing system or computing device can be local ordistributed, and can include any combination of special-purpose hardwareand/or general-purpose hardware with software implementing thefunctionality described herein.

For the sake of presentation, the detailed description uses terms like“determine” and “use” to describe computer operations in a computingsystem. These terms are high-level abstractions for operations performedby a computer, and should not be confused with acts performed by a humanbeing. The actual computer operations corresponding to these terms varydepending on implementation.

Mobile Device

FIG. 8 illustrates a generalized an example of a mobile device 800 inwhich the described innovations may be implemented. For example, thesmartphone 310 can be configured similar to the mobile device 800.

The mobile device 800 can include a variety of optional hardware andsoftware components, shown generally at 802. Any components 802 in themobile device can communicate with any other component, although not allconnections are shown, for ease of illustration. The mobile device canbe any of a variety of computing devices (e.g., cell phone, smartphone,handheld computer, Personal Digital Assistant (PDA), etc.) and can allowwireless two-way communications with one or more mobile communicationsnetworks 804, such as a cellular, satellite, or other network.

The illustrated mobile device 800 can include a controller or processor810 (e.g., signal processor, microprocessor, ASIC, or other control andprocessing logic circuitry) for performing such tasks as signal coding,data processing, input/output processing, power control, and/or otherfunctions. An operating system 812 can control the allocation and usageof the components 802 and support for one or more application programs814. The application programs can include common mobile computingapplications (e.g., email applications, calendars, contact managers, webbrowsers, messaging applications), or any other computing application.Functionality 813 for accessing an application store can also be usedfor acquiring and updating application programs 814.

The illustrated mobile device 800 can include memory 820. Memory 820 caninclude non-removable memory 822 and/or removable memory 824. Thenon-removable memory 822 can include RAM, ROM, flash memory, a harddisk, or other well-known memory storage technologies. The removablememory 824 can include flash memory or a Subscriber Identity Module(SIM) card, which is well known in GSM communication systems, or otherwell-known memory storage technologies, such as “smart cards.” Thememory 820 can be used for storing data and/or code for running theoperating system 812 and the applications 814. Example data can includeweb pages, text, images, sound files, video data, or other data sets tobe sent to and/or received from one or more network servers or otherdevices via one or more wired or wireless networks. The memory 820 canbe used to store a subscriber identifier, such as an InternationalMobile Subscriber Identity (IMSI), and an equipment identifier, such asan International Mobile Equipment Identifier (IMEI). Such identifierscan be transmitted to a network server to identify users and equipment.

The mobile device 800 can support one or more input devices 830, such asa touchscreen 832, microphone 834, camera 836, physical keyboard 838and/or trackball 840 and one or more output devices 850, such as aspeaker 852 and a display 854. Other possible output devices (not shown)can include piezoelectric or other haptic output devices. Some devicescan serve more than one input/output function. For example, touchscreen832 and display 854 can be combined in a single input/output device.

The input devices 830 can include a Natural User Interface (NUI). An NUIis any interface technology that enables a user to interact with adevice in a “natural” manner, free from artificial constraints imposedby input devices such as mice, keyboards, remote controls, and the like.Examples of NUI methods include those relying on speech recognition,touch and stylus recognition, gesture recognition both on screen andadjacent to the screen, air gestures, head and eye tracking, voice andspeech, vision, touch, gestures, and machine intelligence. Otherexamples of a NUI include motion gesture detection usingaccelerometers/gyroscopes, facial recognition, 3D displays, head, eye,and gaze tracking, immersive augmented reality and virtual realitysystems, all of which provide a more natural interface, as well astechnologies for sensing brain activity using electric field sensingelectrodes (EEG and related methods). Thus, in one specific example, theoperating system 812 or applications 814 can comprise speech-recognitionsoftware as part of a voice user interface that allows a user to operatethe device 800 via voice commands. Further, the device 800 can compriseinput devices and software that allows for user interaction via a user'sspatial gestures, such as detecting and interpreting gestures to provideinput to a gaming application.

A wireless modem 860 can be coupled to an antenna (not shown) and cansupport two-way communications between the processor 810 and externaldevices, as is well understood in the art. The modem 860 is showngenerically and can include a cellular modem for communicating with themobile communication network 804 and/or other radio-based modems (e.g.,Bluetooth 864 or Wi-Fi 862). The wireless modem 860 is typicallyconfigured for communication with one or more cellular networks, such asa GSM network for data and voice communications within a single cellularnetwork, between cellular networks, or between the mobile device and apublic switched telephone network (PSTN).

The mobile device can further include at least one input/output port880, a power supply 882, a satellite navigation system receiver 884,such as a Global Positioning System (GPS) receiver, an accelerometer886, and/or a physical connector 890, which can be a USB port, IEEE 1394(FireWire) port, and/or RS-232 port. The illustrated components 802 arenot required or all-inclusive, as any components can be deleted andother components can be added.

Cloud-Supported Environment

FIG. 9 illustrates a generalized example of a suitable cloud-supportedenvironment 900 in which described embodiments, techniques, andtechnologies may be implemented. In the example environment 900, varioustypes of services (e.g., computing services) are provided by a cloud910. For example, the cloud 910 can comprise a collection of computingdevices, which may be located centrally or distributed, that providecloud-based services to various types of users and devices connected viaa network such as the Internet. The implementation environment 900 canbe used in different ways to accomplish computing tasks. For example,some tasks (e.g., processing user input and presenting a user interface)can be performed on local computing devices (e.g., connected devices930, 940, 950) while other tasks (e.g., storage of data to be used insubsequent processing) can be performed in the cloud 910.

In example environment 900, the cloud 910 provides services forconnected devices 930, 940, 950 with a variety of screen capabilities.Connected device 930 represents a device with a computer screen 935(e.g., a mid-size screen). For example, connected device 930 could be apersonal computer such as desktop computer, laptop, notebook, netbook,or the like. Connected device 940 represents a device with a mobiledevice screen 945 (e.g., a small size screen). For example, connecteddevice 940 could be a mobile phone, smart phone, personal digitalassistant, tablet computer, and the like. Connected device 950represents a device with a large screen 955. For example, connecteddevice 950 could be a television screen (e.g., a smart television) oranother device connected to a television (e.g., a set-top box or gamingconsole) or the like. One or more of the connected devices 930, 940, 950can include touchscreen capabilities. Touchscreens can accept input indifferent ways. For example, capacitive touchscreens detect touch inputwhen an object (e.g., a fingertip or stylus) distorts or interrupts anelectrical current running across the surface. As another example,touchscreens can use optical sensors to detect touch input when beamsfrom the optical sensors are interrupted. Physical contact with thesurface of the screen is not necessary for input to be detected by sometouchscreens. Devices without screen capabilities also can be used inexample environment 900. For example, the cloud 910 can provide servicesfor one or more computers (e.g., server computers) without displays.

Services can be provided by the cloud 910 through service providers 920,or through other providers of online services (not depicted). Forexample, cloud services can be customized to the screen size, displaycapability, and/or touchscreen capability of a particular connecteddevice (e.g., connected devices 930, 940, 950).

In example environment 900, the cloud 910 provides the technologies andsolutions described herein to the various connected devices 930, 940,950 using, at least in part, the service providers 920. For example, theservice providers 920 can provide a centralized solution for variouscloud-based services. The service providers 920 can manage servicesubscriptions for users and/or devices (e.g., for the connected devices930, 940, 950 and/or their respective users).

Example Implementations

Although the operations of some of the disclosed methods are describedin a particular, sequential order for convenient presentation, it shouldbe understood that this manner of description encompasses rearrangement,unless a particular ordering is required by specific language set forthbelow. For example, operations described sequentially may in some casesbe rearranged or performed concurrently. Moreover, for the sake ofsimplicity, the attached figures may not show the various ways in whichthe disclosed methods can be used in conjunction with other methods.

Any of the disclosed methods can be implemented as computer-executableinstructions or a computer program product stored on one or morecomputer-readable storage media and executed on a computing device(e.g., any available computing device, including smart phones or othermobile devices that include computing hardware). Computer-readablestorage media are any available tangible media that can be accessedwithin a computing environment (e.g., one or more optical media discssuch as DVD or CD, volatile memory components (such as DRAM or SRAM), ornonvolatile memory components (such as flash memory or hard drives)). Byway of example and with reference to FIG. 7, computer-readable storagemedia include memory 720 and 725, and storage 740. By way of example andwith reference to FIG. 8, computer-readable storage media include memoryand storage 820, 822, and 824. The term computer-readable storage mediadoes not include signals and carrier waves. In addition, the termcomputer-readable storage media does not include communicationconnections (e.g., 770, 860, 862, and 864).

Any of the computer-executable instructions for implementing thedisclosed techniques as well as any data created and used duringimplementation of the disclosed embodiments can be stored on one or morecomputer-readable storage media. The computer-executable instructionscan be part of, for example, a dedicated software application or asoftware application that is accessed or downloaded via a web browser orother software application (such as a remote computing application).Such software can be executed, for example, on a single local computer(e.g., any suitable commercially available computer) or in a networkenvironment (e.g., via the Internet, a wide-area network, a local-areanetwork, a client-server network (such as a cloud computing network), orother such network) using one or more network computers.

For clarity, only certain selected aspects of the software-basedimplementations are described. Other details that are well known in theart are omitted. For example, it should be understood that the disclosedtechnology is not limited to any specific computer language or program.For instance, the disclosed technology can be implemented by softwarewritten in C++, Java, Perl, JavaScript, Adobe Flash, or any othersuitable programming language. Likewise, the disclosed technology is notlimited to any particular computer or type of hardware. Certain detailsof suitable computers and hardware are well known and need not be setforth in detail in this disclosure.

Furthermore, any of the software-based embodiments (comprising, forexample, computer-executable instructions for causing a computer toperform any of the disclosed methods) can be uploaded, downloaded, orremotely accessed through a suitable communication means. Such suitablecommunication means include, for example, the Internet, the World WideWeb, an intranet, software applications, cable (including fiber opticcable), magnetic communications, electromagnetic communications(including RF, microwave, and infrared communications), electroniccommunications, or other such communication means.

The disclosed methods, apparatus, and systems should not be construed aslimiting in any way. Instead, the present disclosure is directed towardall novel and nonobvious features and aspects of the various disclosedembodiments, alone and in various combinations and sub combinations withone another. The disclosed methods, apparatus, and systems are notlimited to any specific aspect or feature or combination thereof, nor dothe disclosed embodiments require that any one or more specificadvantages be present or problems be solved.

The technologies from any example can be combined with the technologiesdescribed in any one or more of the other examples. In view of the manypossible embodiments to which the principles of the disclosed technologymay be applied, it should be recognized that the illustrated embodimentsare only examples of the technology and should not be taken as limitingthe scope of the present disclosure. Rather, the scope of the inventionis defined by the following claims.

The invention claimed is:
 1. A system for editing an electronic message,comprising: at least one processor; and an application configured to, bythe at least one processor: send an electronic message from a sender toa recipient's inbox, wherein the sender has a first electronic messagingaccount, and the recipient has a second electronic messaging accountthat is different than the first electronic messaging account; receiveinformation from the sender to edit the sent electronic message; save arelative location of the sent electronic message in the recipient'sinbox in a memory, the saved relative location including a timestamp ofthe sent electronic message; edit the sent electronic message based onthe received information from the sender to create an edited electronicmessage; replace the sent electronic message in the recipient's inboxwith the edited electronic message, wherein the edited electronicmessage is placed in the recipient's inbox in the saved relativelocation and includes the timestamp of the sent electronic messagestored in the memory; and display information about the recipient whilethe sender is composing the electronic message, editing the sentelectronic message, or replying to the sent electronic message, whereinthe information about the recipient comprises personal information aboutthe recipient, and notes about the recipient that were previouslyentered by the sender.
 2. The system of claim 1, wherein the informationabout the recipient further comprises information about past or upcomingmeetings between the sender and the recipient.
 3. The system of claim 1,wherein the application is further configured to modify the sentelectronic message by adding at least one attachment to or by removingat least one attachment from the sent electronic message.
 4. The systemof claim 1, wherein the application is further configured to modify thesent electronic message by adding at least one additional recipient tothe sent electronic message.
 5. The system of claim 1, wherein theapplication is further configured to modify the subject line of the sentelectronic message.
 6. The system of claim 1, wherein the application isa messaging application on a smartphone.
 7. The system of claim 1,wherein the application is a messaging application on a computer.
 8. Thesystem of claim 1, wherein the application is further configured to:store the sent electronic message in a first storage location until theapplication receives information from the recipient indicating that thesent electronic message or the edited electronic message has been readby the recipient; move the sent electronic message from the firststorage location to a second storage location when the applicationreceives information from the recipient indicating that either the sentelectronic message or the edited electronic message has been read by therecipient; and allow the sent electronic message to be edited from thefirst storage location but not from the second storage location.
 9. Amethod of editing an electronic message comprising: sending anelectronic message from a first device of a first user to a second user,wherein the first user has a first electronic messaging account, and thesecond user has a second electronic messaging account that is differentthan the first electronic messaging account of the first user, andwherein the sent electronic message appears at a location of the secondelectronic messaging account of the second user, the location of thesecond electronic messaging account including a timestamp of the sentelectronic message; retrieving the sent electronic message from thelocation of the second electronic messaging account with a second deviceof the first user; editing the retrieved electronic message from thesecond device of the first user; sending the edited electronic messagefrom the second device of the first user to the second user; replacingthe sent electronic message with the edited electronic message, whereinthe edited electronic message appears in the location of the secondelectronic messaging account and includes the timestamp of the sentelectronic message; and displaying information about the second userwhile the first user is composing the electronic message, editing thesent electronic message, or replying to the sent electronic message,wherein the information about the second user comprises personalinformation about the second user, and notes about the second user thatwere previously entered by the first user.
 10. The method of claim 9,wherein the information about the second user further comprisesinformation about past or upcoming meetings between the first user andthe second user.
 11. The method of claim 9, wherein editing theretrieved electronic message includes adding at least one attachment toor removing at least one attachment from the sent electronic message.12. The method of claim 9, wherein editing the retrieved electronicmessage includes adding at least one additional recipient to the sentelectronic message.
 13. The method of claim 9, wherein the first deviceis a computer, and the second device is a smartphone.
 14. The method ofclaim 9, wherein the first device is a smartphone, and the second deviceis a computer.
 15. The method of claim 9, wherein the electronic messageis an email message.
 16. One or more computer-readable storage mediastoring computer-executable instructions for editing an electronicmessage, the computer-readable storage comprising: instructions forsending an electronic message from a sender's email account to arecipient's email account, wherein the recipient's email accountcomprises an inbox; instructions for saving a relative location of thesent electronic message in the recipient's inbox, wherein theinstructions for saving include instructions for recording a timestampof the sent electronic message in a memory; instructions for retrievingthe sent electronic message from the recipient's inbox after therelative location of the sent electronic message in the recipient'sinbox has been saved; instructions for editing the retrieved electronicmessage; instructions for sending the edited electronic message from thesender to the recipient; instructions for replacing the sent electronicmessage with the edited electronic message in the relative location ofthe electronic message in the recipient's inbox, wherein the editedelectronic message includes the timestamp of the sent electronicmessage; and instructions displaying information about the recipientwhile the sender is composing the electronic message, editing the sentelectronic message, or replying to the sent electronic message, whereinthe information about the recipient comprises personal information aboutthe recipient, and notes about the recipient that were previouslyentered by the sender.
 17. The one or more computer-readable storagemedia of claim 16, wherein the information about the recipient furthercomprises information about past or upcoming meetings between the senderand the recipient.
 18. The one or more computer-readable storage mediaof claim 16, wherein the instructions for editing the retrievedelectronic message include instructions for adding at least oneattachment to or removing at least one attachment from the sentelectronic message.
 19. The one or more computer-readable storage mediaof claim 16, wherein the instructions for editing the retrievedelectronic message include instructions for adding at least onerecipient to the sent electronic message.
 20. The one or morecomputer-readable storage media of claim 16, wherein the instructionsfor editing the retrieved electronic message include instructions forediting a subject line of the sent electronic message.